﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;


    /// <summary>
    /// VerificationFormat 的摘要说明
    /// </summary>
    public class VerificationFormat
    {
        public VerificationFormat()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

        #region 是否为手机号，可以为空
        public static bool IsTelephone(string tel)
        {
            if (string.IsNullOrEmpty(tel))
            {
                return true;
            }
            return Regex.IsMatch(tel, @"^(\(\d{3}\)|\d{3}-|\(\d{4}\)|\d{4}-)?(\d{8}|\d{7})[-]{0,1}\d{0,}$");
        }
        #endregion

        #region 是否为Email，可以为空
        public static bool IsEmail(string email)
        {
            if (string.IsNullOrEmpty(email))
            {
                return true;
            }
            return Regex.IsMatch(email, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
        }
        #endregion

        #region 是否为手机，可以为空
        public static bool IsMobile(string mobile)
        {
            if (string.IsNullOrEmpty(mobile))
            {
                return true;
            }
            return Regex.IsMatch(mobile, @"^(1[35]\d{9}|189\d{8})$");
        }
        #endregion

        #region 判断是否为数字，并且不能为空或者Null
        /// <summary>
        /// 判断是否为数字，并且不能为空或者Null
        /// </summary>
        /// <param name="strNum">文本</param>
        /// <returns>是数字返回true,不是数字返回false</returns>
        public static bool IsNumber(string strNum)
        {
            if (string.IsNullOrEmpty(strNum)) return false;
            int num;
            return Int32.TryParse(strNum, out num);
        }
        #endregion

        #region 判断是否为Double，并且不能为空或者Null
        /// <summary>
        /// 判断是否为Double，并且不能为空或者Nul
        /// </summary>
        /// <param name="strNum">文本</param>
        /// <returns>是Double返回true,不是Double返回false</returns>
        public static bool IsDouble(string strNum)
        {
            if (string.IsNullOrEmpty(strNum)) return false;

            double num;
            return Double.TryParse(strNum, out num);
        }
        #endregion


        #region 判断是否为区号（3-4为数字），可以为空
        /// <summary>
        /// 判断是否为区号（3-4为数字），可以为空
        /// </summary>
        /// <param name="areacode">文本</param>
        /// <returns>是区号返回true,不是区号返回false</returns>
        public static Boolean IsAreaCode(String areacode)
        {
            if (areacode.Length == 0) return true;
            return Regex.IsMatch(areacode, @"^\d{3,4}$");
        }
        #endregion

        #region 判断是否为电话（7-11为数字），可以为空
        /// <summary>
        /// 判断是否为电话号（7-11为数字），可以为空
        /// </summary>
        /// <param name="phone">文本</param>
        /// <returns>是电话号返回true,不是电话号返回false</returns>
        public static Boolean IsPhone(String phone)
        {
            if (phone.Length == 0) return true;
            return Regex.IsMatch(phone, @"^\d{7,11}$");
        }
        #endregion

        #region 判断是否为分机号（1-10为数字），可以为空
        /// <summary>
        /// 判断是否为分机号（1-10为数字），可以为空
        /// </summary>
        /// <param name="phone">文本</param>
        /// <returns>是分机号返回true,不是分机号返回false</returns>
        public static Boolean IsExtension(String extension)
        {
            if (extension.Length == 0) return true;
            return Regex.IsMatch(extension, @"^\d{1,10}$");
        }
        #endregion

        #region 判断是否为邮编（6位数字），可以为空
        /// <summary>
        /// 判断是否为区号（6为数字），可以为空
        /// </summary>
        /// <param name="phone">文本</param>
        /// <returns>是邮编返回true,不是邮编返回false</returns>
        public static Boolean IsPostcode(String postcode)
        {
            if (postcode.Length == 0) return true;
            return Regex.IsMatch(postcode, @"^\d{6}$");
        }

        #endregion
    }

